Analyse der Matoma-HaNS-Daten

Author

Sebastian Sauer

Published

September 3, 2024

1 Setup

1.1 R-Pakete starten

Show the code
library(targets)
library(tidyverse)
library(ggokabeito)
library(easystats)
library(gt)
library(ggfittext)
library(scales)
library(visdat)
Show the code
theme_set(theme_minimal())

1.2 Roh-Daten laden und inspizieren (data_all_fact)

JSON-Daten wurden nicht importiert, da offenbar nur redundante Daten enthalten sind.

Show the code
tar_load(data_all_fct)

1.2.1 Dimension

Der Roh-Datensatz verfügt über

  • 2483 Zeilen
  • 6550 Spalten (Dubletten und Spalten mit Bildern bereits entfernt)

Jede Zeile entspricht einem “Visit”.

1.2.2 Erster Blick

Show the code
data_all_fct_head100 <- 
data_all_fct %>% 
  select(1:100) %>% 
  slice_head(n = 100) 
Show the code
data_all_fct_head100 %>% 
  visdat::vis_dat()

1.2.3 Namen (1-100)

Show the code
data_all_fct_head100 %>% 
  names()
  [1] "idvisit"                                 
  [2] "visitorid"                               
  [3] "fingerprint"                             
  [4] "actiondetails_0_type"                    
  [5] "actiondetails_0_url"                     
  [6] "actiondetails_0_pageidaction"            
  [7] "actiondetails_0_idpageview"              
  [8] "actiondetails_0_servertimepretty"        
  [9] "actiondetails_0_pageid"                  
 [10] "actiondetails_0_eventcategory"           
 [11] "actiondetails_0_eventaction"             
 [12] "actiondetails_0_pageviewposition"        
 [13] "actiondetails_0_timestamp"               
 [14] "actiondetails_0_title"                   
 [15] "actiondetails_0_subtitle"                
 [16] "actiondetails_1_type"                    
 [17] "actiondetails_1_url"                     
 [18] "actiondetails_1_pageidaction"            
 [19] "actiondetails_1_idpageview"              
 [20] "actiondetails_1_servertimepretty"        
 [21] "actiondetails_1_pageid"                  
 [22] "actiondetails_1_pageloadtime"            
 [23] "actiondetails_1_timespent"               
 [24] "actiondetails_1_timespentpretty"         
 [25] "actiondetails_1_pageloadtimemilliseconds"
 [26] "actiondetails_1_pageviewposition"        
 [27] "actiondetails_1_title"                   
 [28] "actiondetails_1_subtitle"                
 [29] "actiondetails_1_timestamp"               
 [30] "actiondetails_2_type"                    
 [31] "actiondetails_2_url"                     
 [32] "actiondetails_2_pageidaction"            
 [33] "actiondetails_2_idpageview"              
 [34] "actiondetails_2_servertimepretty"        
 [35] "actiondetails_2_pageid"                  
 [36] "actiondetails_2_eventcategory"           
 [37] "actiondetails_2_eventaction"             
 [38] "actiondetails_2_pageviewposition"        
 [39] "actiondetails_2_timestamp"               
 [40] "actiondetails_2_title"                   
 [41] "actiondetails_2_subtitle"                
 [42] "actiondetails_3_type"                    
 [43] "actiondetails_3_url"                     
 [44] "actiondetails_3_pageidaction"            
 [45] "actiondetails_3_idpageview"              
 [46] "actiondetails_3_servertimepretty"        
 [47] "actiondetails_3_pageid"                  
 [48] "actiondetails_3_timespent"               
 [49] "actiondetails_3_timespentpretty"         
 [50] "actiondetails_3_pageviewposition"        
 [51] "actiondetails_3_title"                   
 [52] "actiondetails_3_subtitle"                
 [53] "actiondetails_3_timestamp"               
 [54] "actiondetails_4_type"                    
 [55] "actiondetails_4_url"                     
 [56] "actiondetails_4_pageidaction"            
 [57] "actiondetails_4_idpageview"              
 [58] "actiondetails_4_servertimepretty"        
 [59] "actiondetails_4_pageid"                  
 [60] "actiondetails_4_sitesearchkeyword"       
 [61] "actiondetails_4_sitesearchcount"         
 [62] "actiondetails_4_pageviewposition"        
 [63] "actiondetails_4_title"                   
 [64] "actiondetails_4_subtitle"                
 [65] "actiondetails_4_timestamp"               
 [66] "actiondetails_5_type"                    
 [67] "actiondetails_5_url"                     
 [68] "actiondetails_5_pageidaction"            
 [69] "actiondetails_5_idpageview"              
 [70] "actiondetails_5_servertimepretty"        
 [71] "actiondetails_5_pageid"                  
 [72] "actiondetails_5_eventcategory"           
 [73] "actiondetails_5_eventaction"             
 [74] "actiondetails_5_pageviewposition"        
 [75] "actiondetails_5_timestamp"               
 [76] "actiondetails_5_title"                   
 [77] "actiondetails_5_subtitle"                
 [78] "actiondetails_6_type"                    
 [79] "actiondetails_6_url"                     
 [80] "actiondetails_6_pageidaction"            
 [81] "actiondetails_6_idpageview"              
 [82] "actiondetails_6_servertimepretty"        
 [83] "actiondetails_6_pageid"                  
 [84] "actiondetails_6_timespent"               
 [85] "actiondetails_6_timespentpretty"         
 [86] "actiondetails_6_pageviewposition"        
 [87] "actiondetails_6_title"                   
 [88] "actiondetails_6_subtitle"                
 [89] "actiondetails_6_timestamp"               
 [90] "actiondetails_7_type"                    
 [91] "actiondetails_7_url"                     
 [92] "actiondetails_7_pageidaction"            
 [93] "actiondetails_7_idpageview"              
 [94] "actiondetails_7_servertimepretty"        
 [95] "actiondetails_7_pageid"                  
 [96] "actiondetails_7_eventcategory"           
 [97] "actiondetails_7_eventaction"             
 [98] "actiondetails_7_pageviewposition"        
 [99] "actiondetails_7_timestamp"               
[100] "actiondetails_7_title"                   

1.2.4 Werte der erst 100 Spalten

Show the code
data_all_fct_head100 %>% 
  glimpse()
Rows: 100
Columns: 100
$ idvisit                                  <fct> 19, 20, 18, 16, 17, 15, 14, 1…
$ visitorid                                <fct> 01357ce636fa78c2, 01357ce636f…
$ fingerprint                              <fct> 9ffcf86ca880ddaa, 9ffcf86ca88…
$ actiondetails_0_type                     <fct> event, action, action, action…
$ actiondetails_0_url                      <fct> https://hans.th-nuernberg.de/…
$ actiondetails_0_pageidaction             <fct> 17, 32, 2, 32, 17, 32, 192, 3…
$ actiondetails_0_idpageview               <fct> 1YNiVr, pMCs2U, DNNr9n, c6Mr7…
$ actiondetails_0_servertimepretty         <fct> "Mar 4, 2024 22:58:30", "Mar …
$ actiondetails_0_pageid                   <fct> 6509, 6510, 5632, 5620, 5621,…
$ actiondetails_0_eventcategory            <fct> click_button, NA, NA, NA, cli…
$ actiondetails_0_eventaction              <fct> Kanäle, NA, NA, NA, Kanäle, N…
$ actiondetails_0_pageviewposition         <fct> NA, 1, 1, 1, NA, 1, 1, 1, 1, …
$ actiondetails_0_timestamp                <fct> 2024-03-04 22:58:30, 2024-03-…
$ actiondetails_0_title                    <fct> Event, HAnS, HAnS, HAnS, Even…
$ actiondetails_0_subtitle                 <fct> "Category: \"\"click_button',…
$ actiondetails_1_type                     <fct> action, NA, event, action, NA…
$ actiondetails_1_url                      <fct> https://hans.th-nuernberg.de/…
$ actiondetails_1_pageidaction             <fct> 32, NA, 3, 36, NA, 191, NA, 3…
$ actiondetails_1_idpageview               <fct> HKiQ62, NA, DNNr9n, sXx3s2, N…
$ actiondetails_1_servertimepretty         <fct> "Mar 4, 2024 23:16:59", NA, "…
$ actiondetails_1_pageid                   <fct> 6511, NA, 5633, 5622, NA, 528…
$ actiondetails_1_pageloadtime             <fct> 0.94s, NA, NA, NA, NA, NA, NA…
$ actiondetails_1_timespent                <fct> 21, NA, NA, 200, NA, NA, NA, …
$ actiondetails_1_timespentpretty          <fct> 21s, NA, NA, 3 min 20s, NA, N…
$ actiondetails_1_pageloadtimemilliseconds <fct> 940, NA, NA, NA, NA, NA, NA, …
$ actiondetails_1_pageviewposition         <fct> 1, NA, 1, 2, NA, 1, NA, 1, 2,…
$ actiondetails_1_title                    <fct> HAnS, NA, Event, HAnS, NA, Ev…
$ actiondetails_1_subtitle                 <fct> "https://hans.th-nuernberg.de…
$ actiondetails_1_timestamp                <fct> 2024-03-04 23:16:59, NA, 2024…
$ actiondetails_2_type                     <fct> event, NA, action, event, NA,…
$ actiondetails_2_url                      <fct> https://hans.th-nuernberg.de/…
$ actiondetails_2_pageidaction             <fct> 33, NA, 147, 33, NA, 33, NA, …
$ actiondetails_2_idpageview               <fct> HKiQ62, NA, 1wrpnl, c6Mr7k, N…
$ actiondetails_2_servertimepretty         <fct> "Mar 4, 2024 23:17:20", NA, "…
$ actiondetails_2_pageid                   <fct> 6512, NA, 5634, 5623, NA, 528…
$ actiondetails_2_eventcategory            <fct> click_channelcard, NA, NA, cl…
$ actiondetails_2_eventaction              <fct> "ZELLKU", NA, NA, "ETECHEN", …
$ actiondetails_2_pageviewposition         <fct> 1, NA, 2, 1, NA, 1, NA, 2, 2,…
$ actiondetails_2_timestamp                <fct> 2024-03-04 23:17:20, NA, 2024…
$ actiondetails_2_title                    <fct> Event, NA, HAnS, Event, NA, E…
$ actiondetails_2_subtitle                 <fct> "Category: \"\"click_channelc…
$ actiondetails_3_type                     <fct> action, NA, search, search, N…
$ actiondetails_3_url                      <fct> https://hans.th-nuernberg.de/…
$ actiondetails_3_pageidaction             <fct> 36, NA, NA, NA, NA, 32, NA, 3…
$ actiondetails_3_idpageview               <fct> E8FkLA, NA, 1wrpnl, sXx3s2, N…
$ actiondetails_3_servertimepretty         <fct> "Mar 4, 2024 23:17:20", NA, "…
$ actiondetails_3_pageid                   <fct> 6513, NA, 5635, 5624, NA, 528…
$ actiondetails_3_timespent                <fct> 10, NA, NA, NA, NA, 3, NA, 45…
$ actiondetails_3_timespentpretty          <fct> 10s, NA, NA, NA, NA, 3s, NA, …
$ actiondetails_3_pageviewposition         <fct> 2, NA, 2, 2, NA, 2, NA, 2, NA…
$ actiondetails_3_title                    <fct> HAnS, NA, Site Search, Site S…
$ actiondetails_3_subtitle                 <fct> "https://hans.th-nuernberg.de…
$ actiondetails_3_timestamp                <fct> 2024-03-04 23:17:20, NA, 2024…
$ actiondetails_4_type                     <fct> search, NA, event, event, NA,…
$ actiondetails_4_url                      <fct> NA, NA, https://hans.th-nuern…
$ actiondetails_4_pageidaction             <fct> NA, NA, 246, 38, NA, 33, NA, …
$ actiondetails_4_idpageview               <fct> E8FkLA, NA, 1wrpnl, sXx3s2, N…
$ actiondetails_4_servertimepretty         <fct> "Mar 4, 2024 23:17:20", NA, "…
$ actiondetails_4_pageid                   <fct> 6514, NA, 5637, 5625, NA, 528…
$ actiondetails_4_sitesearchkeyword        <fct> "ZELLKU", NA, NA, NA, NA, NA,…
$ actiondetails_4_sitesearchcount          <fct> 0, NA, NA, NA, NA, NA, NA, NA…
$ actiondetails_4_pageviewposition         <fct> 2, NA, 3, 3, NA, 2, NA, 3, NA…
$ actiondetails_4_title                    <fct> Site Search, NA, Event, Event…
$ actiondetails_4_subtitle                 <fct> "ZELLKU", NA, "Category: \"\"…
$ actiondetails_4_timestamp                <fct> 2024-03-04 23:17:20, NA, 2024…
$ actiondetails_5_type                     <fct> event, NA, action, action, NA…
$ actiondetails_5_url                      <fct> https://hans.th-nuernberg.de/…
$ actiondetails_5_pageidaction             <fct> 38, NA, 95, 244, NA, 36, NA, …
$ actiondetails_5_idpageview               <fct> E8FkLA, NA, wZEbOS, K7yIXJ, N…
$ actiondetails_5_servertimepretty         <fct> "Mar 4, 2024 23:17:30", NA, "…
$ actiondetails_5_pageid                   <fct> 6515, NA, 5638, 5626, NA, 529…
$ actiondetails_5_eventcategory            <fct> click_videocard, NA, NA, NA, …
$ actiondetails_5_eventaction              <fct> "2-ELISA", NA, NA, NA, NA, NA…
$ actiondetails_5_pageviewposition         <fct> 3, NA, 4, 4, NA, 3, NA, 4, NA…
$ actiondetails_5_timestamp                <fct> 2024-03-04 23:17:30, NA, 2024…
$ actiondetails_5_title                    <fct> Event, NA, HAnS, HAnS, NA, HA…
$ actiondetails_5_subtitle                 <fct> "Category: \"\"click_videocar…
$ actiondetails_6_type                     <fct> action, NA, event, event, NA,…
$ actiondetails_6_url                      <fct> https://hans.th-nuernberg.de/…
$ actiondetails_6_pageidaction             <fct> 274, NA, 247, 245, NA, NA, NA…
$ actiondetails_6_idpageview               <fct> DXTmIN, NA, wZEbOS, K7yIXJ, N…
$ actiondetails_6_servertimepretty         <fct> "Mar 4, 2024 23:17:30", NA, "…
$ actiondetails_6_pageid                   <fct> 6516, NA, 5639, 5627, NA, 529…
$ actiondetails_6_timespent                <fct> 14, NA, NA, NA, NA, NA, NA, N…
$ actiondetails_6_timespentpretty          <fct> 14s, NA, NA, NA, NA, NA, NA, …
$ actiondetails_6_pageviewposition         <fct> 4, NA, 4, 4, NA, 3, NA, 4, NA…
$ actiondetails_6_title                    <fct> HAnS, NA, Event, Event, NA, S…
$ actiondetails_6_subtitle                 <fct> "https://hans.th-nuernberg.de…
$ actiondetails_6_timestamp                <fct> 2024-03-04 23:17:30, NA, 2024…
$ actiondetails_7_type                     <fct> event, NA, action, event, NA,…
$ actiondetails_7_url                      <fct> https://hans.th-nuernberg.de/…
$ actiondetails_7_pageidaction             <fct> 275, NA, 147, 245, NA, 38, NA…
$ actiondetails_7_idpageview               <fct> DXTmIN, NA, WXg3TG, K7yIXJ, N…
$ actiondetails_7_servertimepretty         <fct> "Mar 4, 2024 23:17:31", NA, "…
$ actiondetails_7_pageid                   <fct> 6517, NA, 5640, 5628, NA, 529…
$ actiondetails_7_eventcategory            <fct> videoplayer_click, NA, NA, ge…
$ actiondetails_7_eventaction              <fct> "play", NA, NA, "3", NA, "Vor…
$ actiondetails_7_pageviewposition         <fct> 4, NA, 5, 4, NA, 4, NA, 4, NA…
$ actiondetails_7_timestamp                <fct> 2024-03-04 23:17:31, NA, 2024…
$ actiondetails_7_title                    <fct> Event, NA, HAnS, Event, NA, E…

1.2.5 Datensatz data_slim, Zeilen 1-100

Show the code
tar_load(data_slim)

data_slim %>% 
  slice(1:100) |> 
  gt()
nr type value idvisit
0 type action 3
0 type action 3
0 url https://hans.th-nuernberg.de/channels?evalId=none&role=everybody 3
0 url https://hans.th-nuernberg.de/channels?evalId=none&role=everybody 3
0 timestamp 2024-03-04 10:25:00 3
0 timestamp 2024-03-04 10:25:00 3
0 title HAnS 3
0 title HAnS 3
0 subtitle https://hans.th-nuernberg.de/channels?evalId=none&role=everybody 3
0 subtitle https://hans.th-nuernberg.de/channels?evalId=none&role=everybody 3
0 pageloadtime 0.59s 3
0 pageloadtime 0.59s 3
0 pageloadtimemilliseconds 586 3
0 pageloadtimemilliseconds 586 3
1 type action 3
1 type action 3
1 url https://hans.th-nuernberg.de/login?evalId=none&role=undefined 3
1 url https://hans.th-nuernberg.de/login?evalId=none&role=undefined 3
1 title HAnS 3
1 title HAnS 3
1 subtitle https://hans.th-nuernberg.de/login?evalId=none&role=undefined 3
1 subtitle https://hans.th-nuernberg.de/login?evalId=none&role=undefined 3
1 timestamp 2024-03-04 10:25:13 3
1 timestamp 2024-03-04 10:25:13 3
0 type action 8
0 type action 8
0 url https://hans.th-nuernberg.de/search-results?evalId=none&role=everybody 8
0 url https://hans.th-nuernberg.de/search-results?evalId=none&role=everybody 8
0 timestamp 2024-03-04 13:33:11 8
0 timestamp 2024-03-04 13:33:11 8
0 title HAnS 8
0 title HAnS 8
0 subtitle https://hans.th-nuernberg.de/search-results?evalId=none&role=everybody 8
0 subtitle https://hans.th-nuernberg.de/search-results?evalId=none&role=everybody 8
0 pageloadtime 0.3s 8
0 pageloadtime 0.3s 8
0 pageloadtimemilliseconds 300 8
0 pageloadtimemilliseconds 300 8
1 type search 8
1 type search 8
1 title Site Search 8
1 title Site Search 8
1 subtitle sw.student.gesoa@th-nuernberg.de 8
1 subtitle sw.student.gesoa@th-nuernberg.de 8
1 timestamp 2024-03-04 13:33:12 8
1 timestamp 2024-03-04 13:33:12 8
1 sitesearchkeyword sw.student.gesoa@th-nuernberg.de 8
1 sitesearchkeyword sw.student.gesoa@th-nuernberg.de 8
1 sitesearchcount 0 8
1 sitesearchcount 0 8
0 type action 10
0 type action 10
0 url https://hans.th-nuernberg.de/login?evalId=none&role=undefined 10
0 url https://hans.th-nuernberg.de/login?evalId=none&role=undefined 10
0 timestamp 2024-03-04 15:24:44 10
0 timestamp 2024-03-04 15:24:44 10
0 title HAnS 10
0 title HAnS 10
0 subtitle https://hans.th-nuernberg.de/login?evalId=none&role=undefined 10
0 subtitle https://hans.th-nuernberg.de/login?evalId=none&role=undefined 10
0 pageloadtime 0.75s 10
0 pageloadtime 0.75s 10
0 pageloadtimemilliseconds 754 10
0 pageloadtimemilliseconds 754 10
1 type search 10
1 type search 10
1 title Site Search 10
1 title Site Search 10
1 subtitle GESOA 10
1 subtitle GESOA 10
1 timestamp 2024-03-04 15:25:17 10
1 timestamp 2024-03-04 15:25:17 10
1 sitesearchkeyword GESOA 10
1 sitesearchkeyword GESOA 10
1 sitesearchcount 0 10
1 sitesearchcount 0 10
2 type action 10
2 type action 10
2 url https://hans.th-nuernberg.de/search-results?evalId=none&role=everybody 10
2 url https://hans.th-nuernberg.de/search-results?evalId=none&role=everybody 10
2 timestamp 2024-03-04 15:25:17 10
2 timestamp 2024-03-04 15:25:17 10
2 title HAnS 10
2 title HAnS 10
2 subtitle https://hans.th-nuernberg.de/search-results?evalId=none&role=everybody 10
2 subtitle https://hans.th-nuernberg.de/search-results?evalId=none&role=everybody 10
3 type action 10
3 type action 10
3 url https://hans.th-nuernberg.de/channels?evalId=none&role=everybody 10
3 url https://hans.th-nuernberg.de/channels?evalId=none&role=everybody 10
3 title HAnS 10
3 title HAnS 10
3 subtitle https://hans.th-nuernberg.de/channels?evalId=none&role=everybody 10
3 subtitle https://hans.th-nuernberg.de/channels?evalId=none&role=everybody 10
3 timestamp 2024-03-04 15:25:39 10
3 timestamp 2024-03-04 15:25:39 10
4 type action 10
4 type action 10
4 url https://hans.th-nuernberg.de/search-results?evalId=none&role=everybody 10
4 url https://hans.th-nuernberg.de/search-results?evalId=none&role=everybody 10

1.3 Datensatz nur User

Entfernt man Developer, Admins und Lecturers aus dem Roh-Datensatz so bleiben weniger Zeilen übrig:

Show the code
tar_load(data_users_only)
  • 1018 Zeilen
  • 6550 Spalten

1.4 Datensatz mit Anzahl der Aktionen pro User

Show the code
tar_load(count_action)

1.5 Zeitraum

1.5.1 Beginn/Ende der Daten

Show the code
tar_load(config)

Laut config.yaml ist das aktuelle Semester, d.h. 24-ss.

Show the code
tar_load(time_minmax)
Show the code
time_minmax |> 
  summarise(time_min = min(time_min),
            time_max = max(time_max)) |> 
  gt()
time_min time_max
2024-03-04 10:25:00 2024-06-05 20:56:23

Diese Statistik wurde auf Basis des Datenobjekts data_slim berechnet.

1.5.2 Days since last visit

Show the code
tar_load(time_since_last_visit)


time_since_last_visit <- 
time_since_last_visit |> 
  mutate(dayssincelastvisit = as.numeric(dayssincelastvisit)) 

time_since_last_visit |> 
  datawizard::describe_distribution(dayssincelastvisit) |> 
  knitr::kable()
Variable Mean SD IQR Min Max Skewness Kurtosis n n_Missing
dayssincelastvisit 3.95333 8.365608 0 1 42 3.0326 8.31164 2357 126
Show the code
time_since_last_visit |>
  ggplot(aes(x=dayssincelastvisit)) +
  geom_density()

1.6 Statistiken

Die folgenden Statistiken beruhen auf dem Datensatz data_slim:

Show the code
glimpse(data_slim)
Rows: 1,028,397
Columns: 4
$ nr      <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,…
$ type    <fct> type, type, url, url, timestamp, timestamp, title, title, subt…
$ value   <chr> "action", "action", "https://hans.th-nuernberg.de/channels?eva…
$ idvisit <int> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,…

nr fasst die Nummer der Aktion innerhalb eines bestimmten Visits.

1.6.1 Mit allen Daten (den 499er-Daten)

Show the code
count_action |> 
  describe_distribution(nr_max) |> 
  gt() |> 
  fmt_number(columns = where(is.numeric),
             decimals = 2)
Variable Mean SD IQR Min Max Skewness Kurtosis n n_Missing
nr_max 156.25 195.71 248.50 1.00 499.00 0.99 −0.75 857.00 0.00

nr_max gibt den Maximalwert von nr zurück, sagt also, wie viele Aktionen maximal von einem Visitor ausgeführt wurden.

Betrachtet man die Anzahl der Aktionen pro Visitor näher, so fällt auf, dass der Maximalwert (499) sehr häufig vorkommt:

Show the code
count_action |> 
  count(nr_max) |> 
  ggplot(aes(x = nr_max, y = n)) +
  geom_col()

Hier noch in einer anderen Darstellung:

Show the code
count_action |> 
  count(nr_max) |> 
  ggplot(aes(x = nr_max, y = n)) +
  geom_point()

Der Maximalwert ist einfach auffällig häufig:

Show the code
count_action |> 
  count(nr_max == 499) |> 
  gt()
nr_max == 499 n
FALSE 673
TRUE 184

Es erscheint plausibel, dass der Maximalwert alle “gekappten” (zensierten, abgeschnittenen) Werte fasst, also viele Werte, die eigentlich größer wären (aber dann zensiert wurden).

1.6.2 Nur Visitors, für die weniger als 500 Aktionen protokolliert sind

Show the code
count_action2 <- 
count_action |> 
  filter(nr_max != 499) 

count_action2 |> 
  describe_distribution(nr_max) |> 
  gt() |> 
  fmt_number(columns = where(is.numeric),
             decimals = 2)
Variable Mean SD IQR Min Max Skewness Kurtosis n n_Missing
nr_max 62.54 88.47 80.50 1.00 482.00 2.08 4.53 673.00 0.00

1.7 Verteilung

1.7.1 Mit den 499er-Daten

Show the code
count_action_avg = mean(count_action$nr_max)
count_action_sd = sd(count_action$nr_max)

count_action |> 
  ggplot() +
  geom_histogram(aes(x = nr_max)) +
  labs(x = "Anzahl von Aktionen pro Visit",
       y = "n",
       caption = "Der vertikale Strich zeigt den Mittelwert; der horizontale die SD") +
  theme_minimal() +
  geom_vline(xintercept = count_action_avg,
             color = palette_okabe_ito()[1]) +
  geom_segment(x = count_action_avg-count_action_sd,
               y = 0,
               xend = count_action_avg + count_action_sd,
               yend = 0,
               color = palette_okabe_ito()[2],
               size = 2) +
  annotate("label", x = count_action_avg, y = 1500, label = "MW") +
  annotate("label", x = count_action_avg + count_action_sd, y = 0, label = "SD")

Show the code
  #geom_label(aes(x = count_action_avg), y = 1, label = "Mean")
  • Mittelwert der Aktionen pro Visit: 156.25.
  • SD der Aktionen pro Visit: 195.71.

1.7.2 Ohne 499er-Daten

Show the code
count_action_avg2 = mean(count_action2$nr_max)
count_action_sd2 = sd(count_action2$nr_max)

count_action2 |> 
  ggplot() +
  geom_histogram(aes(x = nr_max)) +
  labs(x = "Anzahl von Aktionen pro Visit",
       y = "n",
       title = "Verteilung der User-Aktionen pro Visit",
       caption = "Der vertikale Strich zeigt den Mittelwert; der horizontale die SD") +
  theme_minimal() +
  geom_vline(xintercept = count_action_avg2,
             color = palette_okabe_ito()[1]) +
  geom_segment(x = count_action_avg-count_action_sd2,
               y = 0,
               xend = count_action_avg2 + count_action_sd2,
               yend = 0,
               color = palette_okabe_ito()[2],
               size = 2) +
  annotate("label", x = count_action_avg2, y = 1500, label = "MW", vjust = "top") +
  annotate("label", x = count_action_avg2 + count_action_sd2, y = 0, label = "SD", vjust = "bottom")

Show the code
  #geom_label(aes(x = count_action_avg), y = 1, label = "Mean")
  • Mittelwert der Aktionen pro Visit: 62.54.
  • SD der Aktionen pro Visit: 88.47.

2 Zeit pro Visit

Die Visit-Zeit wurde auf 600 Min. trunkiert/begrenzt.

Show the code
tar_load(time_spent)
tar_load(time_duration)

time_spent <- 
  time_spent |> 
  mutate(t_min = as.numeric(time_diff, units = "mins")) |> 
  filter(t_min < 600)

2.1 Verweildauer-Statistiken in Sekunden

Show the code
time_spent |> 
  summarise(
    mean_time_diff = round(mean(time_diff), 2),
    sd_time_diff = sd(time_diff),
    min_time_diff = min(time_diff),
    max_time_diff = max(time_diff)
  ) |> 
  summarise(
    mean_time_diff_avg = mean(mean_time_diff),
    sd_time_diff_avg = mean(sd_time_diff, na.rm = TRUE),
    min_time_diff_avg = mean(min_time_diff),
    max_time_diff_avg = mean(max_time_diff)
  ) |> 
  gt() |> 
  fmt_number(columns = everything(),
             decimals = 2)
mean_time_diff_avg sd_time_diff_avg min_time_diff_avg max_time_diff_avg
157.67 0.00 157.67 157.67
Show the code
tar_load(time_duration)

time_duration |> 
  summarise(duration_sec_avg = mean(visitduration_sec, na.rm = TRUE))  |> 
  mutate(duration_min_avg = duration_sec_avg / 60)
  duration_sec_avg duration_min_avg
1          951.224         15.85373

2.2 Verweildauer-Statistiken in Minuten

Show the code
time_spent |> 
  summarise(
    mean_t_min = mean(t_min),
    sd_t_min = sd(t_min),
    min_t_min = min(t_min),
    max_t_min = max(t_min)
  ) |> 
   summarise(
    mean_t_min_avg = mean(mean_t_min),
    sd_t_min_avg = mean(sd_t_min, na.rm = TRUE),
    min_t_min_avg = mean(min_t_min),
    max_t_min_avg = mean(max_t_min)
  ) |>
  gt() |> 
  fmt_number(columns = everything(),
             decimals = 2)
mean_t_min_avg sd_t_min_avg min_t_min_avg max_t_min_avg
157.67 0.00 157.67 157.67

2.3 Visualisierung der Verweildauer

2.3.1 bins=20

Show the code
time_spent |> 
  ggplot(aes(x = t_min)) +
  geom_histogram() +
  scale_x_time() +
  theme_minimal() +
  labs(y = "n",
       x = "Verweildauer in HaNS pro Visit in Minuten")

2.3.2 bins=100

Show the code
time_spent |> 
  ggplot(aes(x = t_min)) +
  geom_histogram(binwidth = 5) +
  theme_minimal() +
  labs(y = "n",
       x = "Verweildauer in Minuten",
       title = "Verweildauer in HaNS pro Visit",
       caption = "binwidth = 5 Min.")

2.3.3 Zeitdauer begrenzt auf 1-120 Min.

Show the code
time_spent2 <- 
time_spent |> 
  filter(t_min > 1, t_min < 120) 

time_spent2 |> 
  ggplot(aes(x = t_min)) +
  geom_histogram(binwidth = 10) +
  theme_minimal() +
  labs(y = "n",
       x = "Verweildauer in HaNS pro Visit in Minuten",
       title = "Verweildauer begrenzt auf 1-120 Minuten",
       caption = "bindwidth = 10 Min.")

3 Was machen die User?

Show the code
tar_load(count_action_type)

3.1 Häufigkeiten

3.1.1 Nach Kategorien

Show the code
count_action_type |> 
  count(category, sort = TRUE) |> 
  mutate(prop = round(n/sum(n), 2)) |> 
  gt()
category n prop
NA 107362 0.68
video 40678 0.26
visit_page 3890 0.02
click_slideChange 3363 0.02
Search Results Count 406 0.00
login 387 0.00
click_topic 342 0.00
in_media_search 172 0.00
Kanäle 84 0.00
Medien 78 0.00
click_channelcard 53 0.00
GESOA 43 0.00

3.1.2 eventcategory

Was machen die Visitors eigentlich? Und wie oft?

Show the code
data_slim |> 
  filter(type == "eventcategory") |> 
  count(value, sort = TRUE) |> 
  gt()
value n
clear_transcript_text_for_llm_context 105236
videoplayer_click 40047
click_slideChange 3363
click_videocard 534
login 387
click_button 357
generate_questionaire 355
generate_questionaire_interval_minutes 355
click_topic_position_using_image 332
verify_option_wrong 216
click_transcript_word 186
in_media_search 107
logout 46
message_to_llm 45
click_channelcard 44
click_videocard_search_lecturer 38
in_media_search_results 37
verify_option_correct 36
click_in_media_search_results 33
message_to_llm_de 29
press_enter 25
llm_response_de 23
eval 22
click_videocard_search_course_acronym 21
click_option 15
click_start_resize 15
click_stop_resize 15
click_toggle 11
click_topic_position_using_link 10
message_to_llm_en 8
llm_response_en 7
userRole 7
click_channelcard_search_course_acronym 6
click_videocard_search_semester 6
select_transcript_text_for_llm_context 6
click_channelcard_search_faculty_acronym 4
click_channelcard_search_semester 1

3.2 Verteilung

3.2.1 Rohwerte

Show the code
count_action_type |> 
  count(category, sort = TRUE) |> 
  ggplot(aes(y = reorder(category, n), x = n)) +
  geom_col() +
  geom_bar_text() +
  labs(
    x = "User-Aktion",
    y = "Aktion",
    title = "Anzahl der User-Aktionen nach Kategorie"
  ) +
  theme_minimal() +
  scale_x_continuous(labels = scales::comma)

3.2.2 Log-Skalierung

Show the code
count_action_type |> 
  count(category, sort = TRUE) |> 
  ggplot(aes(y = reorder(category, n), x = n)) +
  geom_col() +
  geom_bar_text() +
  labs(
    x = "Anazhl der User-Aktionen",
    y = "Aktion",
    title = "Anzahl der User-Aktionen nach Kategorie",
    caption = "Log10-Skala"
  ) +
  theme_minimal() +
  scale_x_log10()

4 An welchen Tagen und zu welcher Zeit kommen die User zu HaNS?

4.1 Setup

Show the code
tar_load(time_visit_wday)
Show the code
# Define a vector with the names of the days of the week
# Note: Adjust the start of the week (Sunday or Monday) as per your requirement
days_of_week <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")

# Replace numbers with day names
time_visit_wday$dow2 <- factor(days_of_week[time_visit_wday$dow],
                               levels = days_of_week)

4.2 HaNS-Login nach Uhrzeit

Show the code
time_visit_wday |> 
  as_tibble() |> 
  count(hour) |> 
  mutate(prop = n/sum(n)) |> 
  ggplot(aes(x = hour, y = prop)) +
  geom_col() +
  theme_minimal() +
  labs(
    title = "HaNS-Nutzer sind keine Frühaufsteher",
    x = "Uhrzeit",
    y = "Anteil"
  )

Show the code
 # coord_polar()
Show the code
time_visit_wday |> 
  as_tibble() |> 
  count(hour) |> 
  mutate(prop = n/sum(n)) |> 
  ggplot(aes(x = hour, y = prop)) +
  geom_col() +
  theme_minimal() +
  coord_polar()

4.3 Verteilung der HaNS-Besuche nach Wochentagen

Show the code
time_visit_wday |> 
  as_tibble() |> 
  count(dow2) |> 
  mutate(prop = n/sum(n)) |> 
  ggplot(aes(x = dow2, y = prop)) +
  geom_col() +
  theme_minimal() +
  labs(title = "Verteilung der HaNS-Logins nach Wochentagen",
       x = "Wochentag",
       y = "Anteil")

Show the code
 # coord_polar()
Show the code
time_visit_wday |> 
  as_tibble() |> 
  count(dow2) |> 
  mutate(prop = n/sum(n)) |> 
  ggplot(aes(x = dow2, y = prop)) +
  geom_col() +
  theme_minimal() +
  labs(title = "Verteilung der HaNS-Logins nach Wochentagen",
       x = "Wochentag",
       y = "Anteil")  +
  coord_polar()

4.3.1 HaNS-Login nach Wochentagen Uhrzeit

Show the code
time_visit_wday |> 
  as_tibble() |> 
  count(dow2, hour) |> 
  group_by(dow2) |> 
  mutate(prop = n/sum(n)) |> 
  ggplot(aes(x = hour, y = prop)) +
  geom_col() +
  facet_wrap(~ dow2) +
  theme_minimal() +
  labs(title = "Verteilung der HaNS-Logins nach Wochentagen und Uhrzeiten",
       x = "Wochentag",
       y = "Anteil")

Show the code
 # coord_polar()
Show the code
time_visit_wday |> 
  as_tibble() |> 
  count(dow2, hour) |> 
  group_by(dow2) |> 
  mutate(prop = n/sum(n)) |> 
  ggplot(aes(x = hour, y = prop)) +
  geom_col() +
  facet_wrap(~ dow2) +
  theme_minimal() +
  labs(title = "Verteilung der HaNS-Logins nach Wochentagen und Uhrzeiten",
       x = "Wochentag",
       y = "Anteil") +
  coord_polar()

4.4 Anzahl der Visits nach Datum (Tagen) und Uhrzeit (bin2d)

Show the code
time2 <- 
time_visit_wday |> 
  ungroup() |> 
  mutate(date = as.Date(date_time))

time2 |> 
  ggplot(aes(x = date, y = hour)) +
  geom_bin2d(binwidth = c(1, 1)) + # (1 day, 1 hour)
  scale_x_date(date_breaks = "1 month") +
  theme(legend.position = "bottom") +
  scale_fill_viridis_c() +
  labs(caption = "Each x-bin maps to one week")

4.5 Anzahl der Visits nach Datum (Wochen) und Uhrzeit (bin2d)

Show the code
time2 |> 
  ggplot(aes(x = date, y = hour)) +
  geom_bin2d(binwidth = c(7, 1)) +  # 1 week, 1 hour
  scale_x_date(date_breaks = "1 week", date_labels = "%W") +
  theme(legend.position = "bottom") +
  scale_fill_viridis_c()  +
  labs(x = "Week number in 2023/2024",
       caption = "Each x-bin maps to one week")

4.6 Anzahl der Visits nach Datum (Wochen) und Wochentag (bin2d)

Show the code
time2 |> 
  ggplot(aes(x = date, y = dow)) +
  geom_bin2d(binwidth = c(7, 1)) +  # 1 week, 1 hour
  scale_x_date(date_breaks = "1 week", date_labels = "%W") +
  theme(legend.position = "bottom") +
  scale_fill_viridis_c()  +
  labs(x = "Week number in 2023/2024",
       caption = "Each x-bin maps to one week",
       y = "Day of Week") +
  scale_y_continuous(breaks = 1:7)

5 KI-Gebrauch

5.1 Interaktion mit dem LLM

5.1.1 Art und Anzahl der Interaktionen mit dem LLM

Show the code
data_slim |> 
  filter(type == "eventcategory") |> 
  filter(str_detect(value, "llm")) |> 
  count(value, sort = TRUE) |> 
  mutate(prop = n / round(sum(n), 2)) |> 
  gt()
value n prop
clear_transcript_text_for_llm_context 105236 9.988800e-01
message_to_llm 45 4.271314e-04
message_to_llm_de 29 2.752624e-04
llm_response_de 23 2.183116e-04
message_to_llm_en 8 7.593447e-05
llm_response_en 7 6.644266e-05
select_transcript_text_for_llm_context 6 5.695085e-05

5.1.2 Anteil Visitors, die mit dem LLM interagieren

Show the code
data_slim |> 
  mutate(has_llm = str_detect(value, "llm"))  |> 
  group_by(idvisit) |> 
  summarise(llm_used_during_visit = any(has_llm == TRUE)) |> 
  count(llm_used_during_visit) |> 
  mutate(prop = round(n /sum(n), 2)) |> 
  gt()
llm_used_during_visit n prop
FALSE 617 0.72
TRUE 240 0.28

5.1.3 … Im Zeitverlauf

Show the code
tar_load(idvisit_has_llm)

idvisit_has_llm |> 
  count(year_month, uses_llm) |> 
  ungroup() |> 
  group_by(year_month) |> 
  mutate(prop = round(n/sum(n), 2)) |> 
  gt()
uses_llm n prop
2024-3
FALSE 97 0.29
TRUE 232 0.71
2024-4
FALSE 158 0.16
TRUE 807 0.84
2024-5
FALSE 484 0.99
TRUE 5 0.01
2024-6
FALSE 142 0.95
TRUE 7 0.05
Show the code
idvisit_has_llm |> 
  count(year_month, uses_llm) |> 
  ungroup() |> 
  group_by(year_month) |> 
  mutate(prop = n/sum(n)) |> 
  ggplot(aes(x = year_month, y = prop, color = uses_llm, groups = uses_llm)) +
  geom_point() +
  geom_line(aes(group = uses_llm)) +
  labs(title = "Visitors, die mit dem LLM interagieren im Zeitverlauf (Anteile)")

Show the code
idvisit_has_llm |> 
  count(year_month, uses_llm) |> 
  ungroup() |> 
  group_by(year_month) |> 
  ggplot(aes(x = year_month, y = n, color = uses_llm, groups = uses_llm)) +
  geom_point() +
  geom_line(aes(group = uses_llm)) +
  labs(title = "Visitors, die mit dem LLM interagieren im Zeitverlauf (Anzahl)")

5.2 Klick auf ein Wort im Transkript

Show the code
tar_load(data_slim)
Show the code
data_slim |> 
  filter(type == "subtitle") |> 
  filter(!is.na(value) & value != "") |> 
  count(click_transcript_word = str_detect(value, "click_transcript_word")) |> 
  mutate(prop = round(n/sum(n), 2)) |> 
  gt()
click_transcript_word n prop
FALSE 156672 1
TRUE 186 0

5.3 KI-Aktionen

5.3.1 Insgesamt (ganzer Zeitraum)

Show the code
tar_load(data_long)

5.3.1.1 Im Detail

Show the code
ai_actions_count <- 
  data_long |> 
  filter(str_detect(value, "transcript")) |> 
  count(value) 

ai_actions_count |> 
  gt()
value n
Category: ""clear_transcript_text_for_llm_context', Action: ""Clear selected transcript text as context for chat messages"" 105236
Category: ""click_transcript_word', Action: ""word: Also - pos: 2316.06 - index: 5214"" 1
Category: ""click_transcript_word', Action: ""word: Also - pos: 691.3 - index: 1540"" 1
Category: ""click_transcript_word', Action: ""word: Alumni - pos: 2111.7400000000007 - index: 5071"" 1
Category: ""click_transcript_word', Action: ""word: Anwendungsentwickler - pos: 907.6183050847458 - index: 1975"" 1
Category: ""click_transcript_word', Action: ""word: Arbeitsform - pos: 33.160000000000004 - index: 58"" 1
Category: ""click_transcript_word', Action: ""word: Arbeitskraft - pos: 619.2999999999997 - index: 1361"" 1
Category: ""click_transcript_word', Action: ""word: Auswertungsverfahren - pos: 53.559999999999995 - index: 84"" 1
Category: ""click_transcript_word', Action: ""word: Battle-Abzeichen - pos: 2644.6200000000003 - index: 6270"" 1
Category: ""click_transcript_word', Action: ""word: Beim - pos: 96.02 - index: 152"" 1
Category: ""click_transcript_word', Action: ""word: Beratungsangebote - pos: 2332.180000000001 - index: 5201"" 1
Category: ""click_transcript_word', Action: ""word: Bettelknechts - pos: 2892.4000000000005 - index: 6838"" 1
Category: ""click_transcript_word', Action: ""word: Beziehungen, - pos: 142.22000000000003 - index: 225"" 3
Category: ""click_transcript_word', Action: ""word: Bürgertum - pos: 476.12000000000006 - index: 1045"" 1
Category: ""click_transcript_word', Action: ""word: Das - pos: 3636.7800000000007 - index: 8427"" 1
Category: ""click_transcript_word', Action: ""word: Das - pos: 3937.4400000000014 - index: 9126"" 1
Category: ""click_transcript_word', Action: ""word: Das - pos: 76.47999999999999 - index: 129"" 1
Category: ""click_transcript_word', Action: ""word: Das - pos: 911.48 - index: 2022"" 1
Category: ""click_transcript_word', Action: ""word: Dazu - pos: 3494.7600000000007 - index: 7779"" 1
Category: ""click_transcript_word', Action: ""word: Dazu - pos: 630.1999999999999 - index: 1397"" 1
Category: ""click_transcript_word', Action: ""word: Demokratie - pos: 31.740000000000002 - index: 66"" 1
Category: ""click_transcript_word', Action: ""word: Der - pos: 4390.88 - index: 9546"" 1
Category: ""click_transcript_word', Action: ""word: Der - pos: 4920.200000000001 - index: 10726"" 1
Category: ""click_transcript_word', Action: ""word: Deswegen - pos: 3506.4400000000014 - index: 8197"" 1
Category: ""click_transcript_word', Action: ""word: Deswegen - pos: 430.94000000000017 - index: 939"" 2
Category: ""click_transcript_word', Action: ""word: Die - pos: 2438.520000000001 - index: 5471"" 1
Category: ""click_transcript_word', Action: ""word: Die - pos: 2457.2400000000002 - index: 5490"" 1
Category: ""click_transcript_word', Action: ""word: Die - pos: 937.98 - index: 2077"" 1
Category: ""click_transcript_word', Action: ""word: Dieses - pos: 106 - index: 197"" 1
Category: ""click_transcript_word', Action: ""word: Durch - pos: 736.58 - index: 1654"" 1
Category: ""click_transcript_word', Action: ""word: Effekt - pos: 843.88 - index: 1771"" 1
Category: ""click_transcript_word', Action: ""word: Einfach - pos: 1728.22 - index: 3907"" 1
Category: ""click_transcript_word', Action: ""word: Einflussreich - pos: 181.1200000000001 - index: 303"" 1
Category: ""click_transcript_word', Action: ""word: Einheit - pos: 2349.6400000000003 - index: 5232"" 1
Category: ""click_transcript_word', Action: ""word: Entwicklung - pos: 440.5 - index: 951"" 1
Category: ""click_transcript_word', Action: ""word: Erfolge - pos: 4189.040000000001 - index: 9138"" 1
Category: ""click_transcript_word', Action: ""word: Erstmal - pos: 2823.1400000000003 - index: 6286"" 1
Category: ""click_transcript_word', Action: ""word: Es - pos: 3100.78 - index: 6855"" 1
Category: ""click_transcript_word', Action: ""word: Familie, - pos: 2353.5200000000004 - index: 5243"" 1
Category: ""click_transcript_word', Action: ""word: Fortschritt. - pos: 3350.34 - index: 7843"" 1
Category: ""click_transcript_word', Action: ""word: Geschichte. - pos: 2.96 - index: 6"" 1
Category: ""click_transcript_word', Action: ""word: Geschichtsbuch. - pos: 82.32 - index: 189"" 2
Category: ""click_transcript_word', Action: ""word: Geschichtsschreibung - pos: 166.3 - index: 353"" 1
Category: ""click_transcript_word', Action: ""word: Gesundheitsfürsorge - pos: 3169.100000000001 - index: 7065"" 1
Category: ""click_transcript_word', Action: ""word: Gleichzeitig - pos: 1343.78 - index: 2975"" 1
Category: ""click_transcript_word', Action: ""word: Gleichzeitig - pos: 710.02 - index: 1585"" 1
Category: ""click_transcript_word', Action: ""word: Herzlich - pos: 0.27999999999999997 - index: 0"" 4
Category: ""click_transcript_word', Action: ""word: Hitlers - pos: 18.780000000000005 - index: 46"" 2
Category: ""click_transcript_word', Action: ""word: Hochschullehre. - pos: 259.46000000000004 - index: 443"" 1
Category: ""click_transcript_word', Action: ""word: Im - pos: 212.78000000000003 - index: 362"" 1
Category: ""click_transcript_word', Action: ""word: Im - pos: 3963.840000000001 - index: 8670"" 1
Category: ""click_transcript_word', Action: ""word: In - pos: 2783.3200000000006 - index: 6196"" 1
Category: ""click_transcript_word', Action: ""word: Inkorporiertes - pos: 99.82 - index: 159"" 1
Category: ""click_transcript_word', Action: ""word: Insofern - pos: 2340.28 - index: 5214"" 1
Category: ""click_transcript_word', Action: ""word: Institutionalisiertes - pos: 125.86 - index: 200"" 1
Category: ""click_transcript_word', Action: ""word: Jugendkompanien - pos: 3024.9200000000005 - index: 6720"" 1
Category: ""click_transcript_word', Action: ""word: Jugendlichen, - pos: 2404.34 - index: 5403"" 1
Category: ""click_transcript_word', Action: ""word: Kapital - pos: 207.90000000000003 - index: 349"" 1
Category: ""click_transcript_word', Action: ""word: Kapitalismus - pos: 596.0799999999996 - index: 1307"" 1
Category: ""click_transcript_word', Action: ""word: Keimzelle - pos: 3007.3400000000015 - index: 7067"" 1
Category: ""click_transcript_word', Action: ""word: Kommen - pos: 4313.880000000001 - index: 9391"" 1
Category: ""click_transcript_word', Action: ""word: Kontext - pos: 335.34000000000003 - index: 763"" 1
Category: ""click_transcript_word', Action: ""word: Kontext, - pos: 79 - index: 160"" 1
Category: ""click_transcript_word', Action: ""word: Kooperation - pos: 3350.3 - index: 7329"" 1
Category: ""click_transcript_word', Action: ""word: Korruption - pos: 2878.220000000001 - index: 6806"" 1
Category: ""click_transcript_word', Action: ""word: Krieg. - pos: 440.5800000000001 - index: 988"" 1
Category: ""click_transcript_word', Action: ""word: Lebensverlauf - pos: 213.40000000000003 - index: 363"" 1
Category: ""click_transcript_word', Action: ""word: Mikrometer - pos: 317.5918181818182 - index: 825"" 2
Category: ""click_transcript_word', Action: ""word: Mittelalter, - pos: 1717.6399999999999 - index: 4112"" 1
Category: ""click_transcript_word', Action: ""word: Mobilität - pos: 3079.3600000000006 - index: 7352"" 1
Category: ""click_transcript_word', Action: ""word: Männer - pos: 2258.1800000000003 - index: 5091"" 1
Category: ""click_transcript_word', Action: ""word: Objektiviertes - pos: 114.88 - index: 186"" 1
Category: ""click_transcript_word', Action: ""word: Oevermann. - pos: 49.34 - index: 76"" 1
Category: ""click_transcript_word', Action: ""word: Parson - pos: 321.34000000000003 - index: 728"" 1
Category: ""click_transcript_word', Action: ""word: Pfründner, - pos: 2995.700000000001 - index: 7029"" 1
Category: ""click_transcript_word', Action: ""word: Politökonomie - pos: 3948.3600000000006 - index: 9152"" 1
Category: ""click_transcript_word', Action: ""word: Reichskanzler - pos: 19.280000000000005 - index: 48"" 1
Category: ""click_transcript_word', Action: ""word: Rolle - pos: 3309.4000000000005 - index: 7753"" 1
Category: ""click_transcript_word', Action: ""word: Sei - pos: 1387.44 - index: 3137"" 1
Category: ""click_transcript_word', Action: ""word: Sie - pos: 3944.9000000000005 - index: 8631"" 1
Category: ""click_transcript_word', Action: ""word: Sie - pos: 408.46 - index: 1056"" 1
Category: ""click_transcript_word', Action: ""word: Sozialbeamtinnen - pos: 2473.9400000000005 - index: 5535"" 1
Category: ""click_transcript_word', Action: ""word: Soziales - pos: 135.12 - index: 216"" 2
Category: ""click_transcript_word', Action: ""word: Spannend - pos: 4197.4400000000005 - index: 9157"" 1
Category: ""click_transcript_word', Action: ""word: Staatsgebiet, - pos: 3332.6200000000003 - index: 7800"" 1
Category: ""click_transcript_word', Action: ""word: Stadt - pos: 2372.500000000001 - index: 5642"" 1
Category: ""click_transcript_word', Action: ""word: Subsidiaritätsprinzips, - pos: 2359.500000000001 - index: 5254"" 1
Category: ""click_transcript_word', Action: ""word: Symbolisches - pos: 157.00000000000003 - index: 255"" 1
Category: ""click_transcript_word', Action: ""word: Und - pos: 4544.340000000001 - index: 9876"" 1
Category: ""click_transcript_word', Action: ""word: Und - pos: 4792.700000000002 - index: 10415"" 1
Category: ""click_transcript_word', Action: ""word: Unterdrückung. - pos: 1729.18 - index: 4128"" 1
Category: ""click_transcript_word', Action: ""word: Verband - pos: 1845.9799999999998 - index: 4113"" 1
Category: ""click_transcript_word', Action: ""word: Volkswirtschaftslehre - pos: 3950.8000000000006 - index: 9158"" 1
Category: ""click_transcript_word', Action: ""word: Was - pos: 34.019999999999996 - index: 68"" 1
Category: ""click_transcript_word', Action: ""word: Was - pos: 3879.460000000001 - index: 8692"" 1
Category: ""click_transcript_word', Action: ""word: Was - pos: 682.74 - index: 1515"" 1
Category: ""click_transcript_word', Action: ""word: Weltkrieg - pos: 76.46 - index: 172"" 2
Category: ""click_transcript_word', Action: ""word: Wenn - pos: 1997.8799999999999 - index: 4493"" 1
Category: ""click_transcript_word', Action: ""word: Wie - pos: 2704.02 - index: 6009"" 1
Category: ""click_transcript_word', Action: ""word: Wie - pos: 2776.0200000000004 - index: 6183"" 1
Category: ""click_transcript_word', Action: ""word: Wissenschaftstheorie - pos: 9.780000000000001 - index: 21"" 2
Category: ""click_transcript_word', Action: ""word: Zeit, - pos: 584.16 - index: 1413"" 1
Category: ""click_transcript_word', Action: ""word: anderen - pos: 189.38 - index: 316"" 1
Category: ""click_transcript_word', Action: ""word: auch - pos: 4384.060000000001 - index: 10126"" 1
Category: ""click_transcript_word', Action: ""word: bedeutet, - pos: 3159.4600000000005 - index: 7379"" 1
Category: ""click_transcript_word', Action: ""word: billige - pos: 2086.6600000000008 - index: 5002"" 1
Category: ""click_transcript_word', Action: ""word: bisher - pos: 1594.0800000000002 - index: 3547"" 1
Category: ""click_transcript_word', Action: ""word: bisschen - pos: 1020.56 - index: 2253"" 1
Category: ""click_transcript_word', Action: ""word: bisschen - pos: 2992.3200000000006 - index: 7022"" 1
Category: ""click_transcript_word', Action: ""word: dahin - pos: 2131.32 - index: 5134"" 1
Category: ""click_transcript_word', Action: ""word: das - pos: 300.6963636363636 - index: 790"" 1
Category: ""click_transcript_word', Action: ""word: dass - pos: 2348.4000000000005 - index: 5229"" 1
Category: ""click_transcript_word', Action: ""word: dem - pos: 27.240000000000002 - index: 53"" 1
Category: ""click_transcript_word', Action: ""word: des - pos: 1433.4399999999998 - index: 3204"" 1
Category: ""click_transcript_word', Action: ""word: die - pos: 1017.16 - index: 2248"" 1
Category: ""click_transcript_word', Action: ""word: die - pos: 1885.6399999999996 - index: 4197"" 1
Category: ""click_transcript_word', Action: ""word: die - pos: 231.70000000000005 - index: 491"" 1
Category: ""click_transcript_word', Action: ""word: die - pos: 2428.1800000000003 - index: 5787"" 1
Category: ""click_transcript_word', Action: ""word: eine - pos: 4163.68 - index: 9616"" 1
Category: ""click_transcript_word', Action: ""word: eines - pos: 89.88 - index: 198"" 2
Category: ""click_transcript_word', Action: ""word: es - pos: 783.8599999999999 - index: 1831"" 1
Category: ""click_transcript_word', Action: ""word: gemacht - pos: 1741.48 - index: 3881"" 1
Category: ""click_transcript_word', Action: ""word: genug - pos: 25.4616 - index: 59"" 1
Category: ""click_transcript_word', Action: ""word: gewisse - pos: 1515.2199999999996 - index: 3357"" 1
Category: ""click_transcript_word', Action: ""word: gleichwertige, - pos: 779.92 - index: 1699"" 1
Category: ""click_transcript_word', Action: ""word: größere - pos: 2349.1000000000004 - index: 5231"" 1
Category: ""click_transcript_word', Action: ""word: haben - pos: 2756.9800000000014 - index: 6529"" 1
Category: ""click_transcript_word', Action: ""word: haben - pos: 2983.84 - index: 7004"" 1
Category: ""click_transcript_word', Action: ""word: haben. - pos: 3358.34 - index: 7863"" 1
Category: ""click_transcript_word', Action: ""word: halbwegs - pos: 2022.7399999999998 - index: 4492"" 1
Category: ""click_transcript_word', Action: ""word: heißen - pos: 110.29999999999997 - index: 228"" 1
Category: ""click_transcript_word', Action: ""word: herannehmen - pos: 40.800000000000004 - index: 108"" 1
Category: ""click_transcript_word', Action: ""word: heutigen - pos: 424.1000000000002 - index: 919"" 1
Category: ""click_transcript_word', Action: ""word: hilft, - pos: 336.9863768115942 - index: 801"" 1
Category: ""click_transcript_word', Action: ""word: historischen - pos: 9.920000000000002 - index: 20"" 1
Category: ""click_transcript_word', Action: ""word: immer - pos: 3700.360000000001 - index: 8258"" 1
Category: ""click_transcript_word', Action: ""word: ist - pos: 756.28 - index: 1686"" 1
Category: ""click_transcript_word', Action: ""word: jeweilige - pos: 52.31999999999999 - index: 100"" 1
Category: ""click_transcript_word', Action: ""word: kommunistischen - pos: 3980.7200000000007 - index: 9227"" 1
Category: ""click_transcript_word', Action: ""word: lösen - pos: 1499.3600000000001 - index: 3324"" 1
Category: ""click_transcript_word', Action: ""word: manchen - pos: 2883.800000000001 - index: 6819"" 1
Category: ""click_transcript_word', Action: ""word: milliampere, - pos: 359.9008450704225 - index: 730"" 1
Category: ""click_transcript_word', Action: ""word: möchte - pos: 5.026666666666667 - index: 3"" 1
Category: ""click_transcript_word', Action: ""word: neben - pos: 2318.8400000000006 - index: 5164"" 1
Category: ""click_transcript_word', Action: ""word: nirgendswohin - pos: 3011.82 - index: 7077"" 1
Category: ""click_transcript_word', Action: ""word: noch - pos: 2406.3 - index: 5406"" 1
Category: ""click_transcript_word', Action: ""word: normativ-ethischen, - pos: 71.54 - index: 121"" 1
Category: ""click_transcript_word', Action: ""word: objektive - pos: 51.75999999999999 - index: 80"" 1
Category: ""click_transcript_word', Action: ""word: sagen, - pos: 422.7636842105263 - index: 1104"" 2
Category: ""click_transcript_word', Action: ""word: sie - pos: 2002.3199999999997 - index: 4454"" 1
Category: ""click_transcript_word', Action: ""word: sodass - pos: 1337.9199999999998 - index: 2968"" 2
Category: ""click_transcript_word', Action: ""word: stand - pos: 570.3199999999999 - index: 1387"" 1
Category: ""click_transcript_word', Action: ""word: starten - pos: 1.02 - index: 1"" 1
Category: ""click_transcript_word', Action: ""word: suchen, - pos: 626.88 - index: 1381"" 1
Category: ""click_transcript_word', Action: ""word: um - pos: 423.95000000000005 - index: 1108"" 1
Category: ""click_transcript_word', Action: ""word: uns - pos: 2147.5000000000005 - index: 4799"" 1
Category: ""click_transcript_word', Action: ""word: verfügbar - pos: 141.16000000000005 - index: 223"" 1
Category: ""click_transcript_word', Action: ""word: waren - pos: 1773.0599999999997 - index: 3937"" 1
Category: ""click_transcript_word', Action: ""word: waren - pos: 2967.5600000000004 - index: 6966"" 1
Category: ""click_transcript_word', Action: ""word: was - pos: 3968.6800000000017 - index: 9198"" 1
Category: ""click_transcript_word', Action: ""word: werden. - pos: 2023.12 - index: 4555"" 1
Category: ""click_transcript_word', Action: ""word: wie - pos: 915.4325423728814 - index: 1992"" 1
Category: ""click_transcript_word', Action: ""word: wurden - pos: 1401.52 - index: 3158"" 1
Category: ""click_transcript_word', Action: ""word: wurden - pos: 756.0999999999998 - index: 1654"" 1
Category: ""click_transcript_word', Action: ""word: x-Variable - pos: 10.63 - index: 23"" 1
Category: ""click_transcript_word', Action: ""word: x-Variable - pos: 13.865217391304348 - index: 30"" 2
Category: ""click_transcript_word', Action: ""word: zunächst - pos: 3193.4600000000005 - index: 7105"" 1
Category: ""click_transcript_word', Action: ""word: Ökonomisches - pos: 82.63999999999999 - index: 139"" 1
Category: ""click_transcript_word', Action: ""word: öffentliche - pos: 2219.1000000000004 - index: 4937"" 1
Category: ""click_transcript_word', Action: ""word: üben - pos: 103.33666666666666 - index: 234"" 2
Category: ""select_transcript_text_for_llm_context', Action: ""Use selected transcript text as context for chat messages"" 6
Clear selected transcript text as context for chat messages 105236
Use selected transcript text as context for chat messages 6
clear_transcript_text_for_llm_context 105236
click_transcript_word 186
select_transcript_text_for_llm_context 6

5.3.1.2 Zusammengefasst nach “click transcript word”

Show the code
ai_actions_count |> 
  mutate(value = case_when(
    str_detect(value, "click_transcript_word.*") ~ "click transcript word",
    TRUE ~ value
  )) |> 
  count(value, sort = TRUE) |> 
  gt()
value n
click transcript word 170
Category: ""clear_transcript_text_for_llm_context', Action: ""Clear selected transcript text as context for chat messages"" 1
Category: ""select_transcript_text_for_llm_context', Action: ""Use selected transcript text as context for chat messages"" 1
Clear selected transcript text as context for chat messages 1
Use selected transcript text as context for chat messages 1
clear_transcript_text_for_llm_context 1
select_transcript_text_for_llm_context 1

5.3.2 KI-Klicks pro Monat

Show the code
tar_load(ai_transcript_clicks_per_month)
Show the code
ai_transcript_clicks_per_month |> 
  count(year_month, clicks_transcript_any) |> 
  ungroup() |> 
  group_by(year_month) |> 
  mutate(prop = round(n/sum(n), 2)) |> 
  gt()
clicks_transcript_any n prop
2024-3
FALSE 324 0.98
TRUE 5 0.02
2024-4
FALSE 900 0.93
TRUE 65 0.07
2024-5
FALSE 462 0.94
TRUE 27 0.06
2024-6
FALSE 148 0.99
TRUE 1 0.01